﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLDHS.DAL;
using QLDHS.DO;
using Excel = Microsoft.Office.Interop.Excel;

namespace QLDHS
{
    public partial class KyLuat : Form
    {
        KYLUAT_DAL kl = new KYLUAT_DAL();
        KYLUAT_DO kldo = new KYLUAT_DO();
        public KyLuat()
        {
            InitializeComponent();
        }

        private void LoadAllMaNV()
        {
            cbx_tencanbo_kyluat.DataSource = kl.loadMaNV().Tables[0];
            cbx_tencanbo_kyluat.DisplayMember = "HOTEN";//
            cbx_tencanbo_kyluat.ValueMember = "MACB";
        }

        private void drg_kyluat_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void drg_kyluat_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (drg_kyluat.SelectedRows.Count > 0)
            {
                btn_them_kyluat.Enabled = false;
                btn_suakyluat.Enabled = true;
                btn_xoa_kyluat.Enabled = true;
                btn_export.Enabled = true;

                txt_makyluat.Enabled = false;

                txt_makyluat.Text = drg_kyluat.SelectedRows[0].Cells["MAKYLUAT"].Value.ToString();
                txt_solankyluat.Text = drg_kyluat.SelectedRows[0].Cells["SOLANKYLUAT"].Value.ToString();
                txt_namkyluat.Text = drg_kyluat.SelectedRows[0].Cells["NAMKYLUAT"].Value.ToString();
                txt_hinhthuckyluat.Text = drg_kyluat.SelectedRows[0].Cells["HINHTHUCKYLUAT"].Value.ToString();
                txt_lydokyluat.Text = drg_kyluat.SelectedRows[0].Cells["LYDO"].Value.ToString();
            }
            else
            {
                MessageBox.Show("bạn chưa chọn bản ghi nào để xem ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }

        private void loadallkyluat()
        {
            drg_kyluat.DataSource = kl.loadAll().Tables[0];
        }
        private void KyLuat_Load(object sender, EventArgs e)
        {
            btn_suakyluat.Enabled = false;
            btn_xoa_kyluat.Enabled = false;
            loadallkyluat();
            LoadAllMaNV();
        }
        private bool CheckNullData(string str, string str1, string str2, string str3, string str4)
        {
            if (str.Length == 0 || str1.Length == 0 || str2.Length == 0 || str3.Length == 0 || str4.Length == 0)
            {
                return false;
            }

            return true;
        }
        private void btn_them_kyluat_Click(object sender, EventArgs e)
        {
            if (CheckNullData(txt_makyluat.Text, txt_namkyluat.Text, txt_solankyluat.Text, txt_hinhthuckyluat.Text, txt_lydokyluat.Text))
            {
                kldo.NvmaKL = txt_makyluat.Text;
                kldo.NvmaCB = cbx_tencanbo_kyluat.SelectedValue.ToString();
                kldo.Nvnamkyluat =Convert.ToInt32 (txt_namkyluat.Text);
                kldo.Nvsolankyluat = txt_solankyluat.Text;
                kldo.Nvhinhthuckyluat = txt_hinhthuckyluat.Text;
                kldo.Nvlydo = txt_lydokyluat.Text;
                int checkAdd = kl.insertkl(kldo);
                if (checkAdd > 0)
                {
                    MessageBox.Show("Thêm mới Bản ghi : " + cbx_tencanbo_kyluat.SelectedValue.ToString() + "Thành công");
                    loadallkyluat();
                }
                else
                {
                    MessageBox.Show("Thêm mới  viên Thất Bại ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                }

            }
            else
            {
                MessageBox.Show("Thông tin của các trường dữ liệu không được rỗng ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }

        private void btn_suakyluat_Click(object sender, EventArgs e)
        {
            if (CheckNullData(txt_makyluat.Text, txt_namkyluat.Text, txt_solankyluat.Text, txt_hinhthuckyluat.Text, txt_lydokyluat.Text))
            {
                kldo.NvmaKL = txt_makyluat.Text;
                kldo.NvmaCB = cbx_tencanbo_kyluat.SelectedValue.ToString();
                kldo.Nvnamkyluat = Convert.ToInt32(txt_namkyluat.Text);
                kldo.Nvsolankyluat = txt_solankyluat.Text;
                kldo.Nvhinhthuckyluat = txt_hinhthuckyluat.Text;
                kldo.Nvlydo = txt_lydokyluat.Text;
                int checkAdd = kl.updatekl(kldo);
                if (checkAdd > 0)
                {
                    MessageBox.Show("Cập Nhật Bảng kỷ luật của Nhân viên " + cbx_tencanbo_kyluat.SelectedValue.ToString() + "Thành công");
                    loadallkyluat();
                }
                else
                {
                    MessageBox.Show("Cập Nhật Bảng kỷ luật  của Nhân viên Thất Bại ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                }

            }
            else
            {
                MessageBox.Show("Thông tin của các trường dữ liệu không được rỗng ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }

        private void btn_xoa_kyluat_Click(object sender, EventArgs e)
        {
            if (txt_makyluat.Text.Length == 0)
            {
                
                int checkAdd = kl.delKL(txt_makyluat.Text);

                if (checkAdd > 0)
                {
                    MessageBox.Show("Xóa bản ghi: " + cbx_tencanbo_kyluat.SelectedValue.ToString() + "Thành công");
                }
                else
                {
                    MessageBox.Show("Xóa bản ghi Thất Bại ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("Thông tin của các trường dữ liệu không được rỗng ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }

        private void btn_export_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            Int16 i, j;

            xlApp = new Excel.Application();
            xlWorkBook = xlApp.Workbooks.Add(misValue);

            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            for (i = 0; i <= drg_kyluat.RowCount - 2; i++)
            {
                for (j = 0; j <= drg_kyluat.ColumnCount - 1; j++)
                {
                    xlWorkSheet.Cells[i + 1, j + 1] = drg_kyluat[j, i].Value.ToString();
                }
            }
            string filename = "D:\\DANH_SACH_KY_LUAT.xls";
            xlWorkBook.SaveAs(@""+filename+"", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);

            MessageBox.Show("xuất file ra :"+filename+"Thành công");
        }

        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
    }
}
